A storage system is a computer that provides storage service relating to the organization of information on writable persistent storage devices, such as memories, tapes or disks. The storage system is commonly deployed within a storage area network (SAN) or a network attached storage (NAS) environment. When used within a NAS environment, the storage system may be embodied as a storage system including an operating system that implements a file system to logically organize the information as a hierarchical structure of directories and files on, e.g. the disks. Each “on-disk” file may be implemented as a set of data structures, e.g., disk blocks, configured to store information, such as the actual data for the file. A directory, on the other hand, may be implemented as a specially formatted file in which information about other files and directories are stored. As used herein a file is defined to be any logical storage container that contains a fixed or variable amount of data storage space, and that may be allocated storage out of a larger pool of available data storage space.
The storage system may be further configured to operate according to a client/server model of information delivery to thereby allow many client systems (clients) to access shared resources, such as files, stored on the storage system. Sharing of files is a hallmark of a NAS system, which is enabled because of its semantic level of access to files and file systems. Storage of information on a NAS system is typically deployed over a computer network comprising a geographically distributed collection of interconnected communication links, such as Ethernet, that allow clients to remotely access the information (files) on the storage system. The clients typically communicate with the storage system by exchanging discrete frames or packets of data according to pre-defined protocols, such as the Transmission Control Protocol/Internet Protocol (TCP/IP).
In the client/server model, the client may comprise an application executing on a computer that “connects” to the storage system over a computer network, such as a point-to-point link, shared local area network, wide area network or virtual private network implemented over a public network, such as the Internet. NAS systems generally utilize file-based access protocols; therefore, each client may request the services of the storage system by issuing file system protocol messages (in the form of packets) to the file system over the network identifying one or more files to be accessed without regard to specific locations, e.g., blocks, in which the data are stored on disk. By supporting a plurality of file system protocols, such as the conventional Common Internet File System (CIFS), the Network File System (NFS) and the Direct Access File System (DAFS) protocols, the utility of the storage system may be enhanced for networking clients.
A SAN is a high-speed network that enables establishment of direct connections between a storage system and its storage devices. The SAN may thus be viewed as an extension to a storage bus and, as such, an operating system of the storage system enables access to stored information using block-based access protocols over the “extended bus”. In this context, the extended bus is typically embodied as Fibre Channel (FC) or Ethernet media adapted to operate with block access protocols, such as Small Computer Systems Interface (SCSI) protocol encapsulation over FC or TCP/IP/Ethernet.
A SAN arrangement or deployment allows decoupling of storage from the storage system, such as an application server, and some level of information storage sharing at the application server level. There are, however, environments wherein a SAN is dedicated to a single server. In some SAN deployments, the information is organized in the form of databases, while in others a file-based organization is employed. Where the information is organized as files, the client requesting the information maintains file mappings and manages file semantics, while its requests (and server responses) address the information in terms of block addressing on disk using, e.g., a logical unit number (lun).
According to a basic disk ownership model each storage system is deemed to “own” the disks that comprise the volumes serviced by that storage system. In this context, ownership means that the storage system is responsible for servicing the data contained on those disks. Only the storage system that owns a particular disk may write data to that disk to thereby ensure data integrity and coherency. In some prior storage system implementations, it is common for each storage system to be connected to a local area network, for example a fibre channel loop, having a plurality of disks attached thereto. Here the storage system is the only device directly connected to the disks via the fibre channel loop and, as such, the storage system owns the disks on that loop. However, a noted disadvantage of this disk ownership model is the lack of scalability, as there is a limit to a number of disks that may be added to a single fibre channel loop. This limitation prevents a system administrator from having backup storage systems connected to the disks in the event of failure.
In another prior storage system implementation, two storage systems as a cluster may be connected to a single disk drive through the use of A/B connectors to the disk. In this type of cluster arrangement, the first storage system is connected to the A connection, while the second storage system is connected to the B connection. According to the “A/B” ownership model implementation, the storage system connected to the disk's A connection is deemed to own that disk. If the disk is arrayed with other disks in a disk shelf, all of the disks contained within that shelf “share” the A and B connections. That is, the storage system connected to the A connection of the disk shelf is deemed to own all of the disks in that shelf, while the storage system connected to the B connection may be deemed to own the disks if the storage system connected to the A connection fails or suffers an error condition.
FIG. 1 is a schematic block diagram of a network environment 100 showing an exemplary A/B disk ownership model environment. The environment 100 is centered around a switching network 102, which may comprise one or more switches coupled to a local area network (LAN), a wide area network (WAN), virtual private network (VPN), or a combination of LAN, WAN and VPN implementations arrayed as switches fabric. One or more clients 104 are interconnected via the network 102 to a Red and Blue storage appliances 300A,B. Illustratively, Red storage appliance is interconnected with network 102 via data pathway 106, while Blue storage appliance is interconnected to network 102 via data pathway 108. Red storage appliance 300A is illustratively connected to the Red disk shelf 112 by A connection 116 and to Blue disk shelf 114 by B connection 118. Similarly, Blue storage appliance 300B is connected to Red disk shelf 112 by B connection 122 and to Blue disk shelf 114 by A connection 120. Thus in this environment, Red storage system 300A owns Red disk shelf 112 and Blue storage system owns Blue disk shelf 114.
Other known disk ownership models may be utilized with a storage system. One alternate ownership model is described in U.S. patent application Ser. No. 10/027,457, entitled SYSTEM AND METHOD OF IMPLEMENTING DISK OWNERSHIP IN NETWORKED STORAGE, by Susan M. Coatney, et al. Such an alternate ownership model may be utilized for disks connected in SAN environment that utilizes a two-part system. The first part of the alternate ownership system involves the writing of ownership information to a predetermined area of each disk, generally described as sector S. This predetermined “ownership” area is described as Sector S and it may comprise multiple disk sectors. The ownership information is illustratively the serial number of the owning storage system is stored in non-volatile RAM (NVRAM) of the storage system. Within the system, this ownership information acts as a definitive ownership attribute. The second part of the ownership system involves the setting of a SCSI-3 persistent reservation to allow only the disk owner to write to the disk. Use of a SCSI-3 persistent reservation allows other storage systems to only read the ownership information from the disks
By utilizing this Sector S ownership system and model, any number of storage systems connected to a switching network can read from, but not write to, all of the disks connected to the network. In general, the Sector S ownership system enables any number of storage systems to be connected to the switching fabric of the network with each storage system being able to read data from all of the disks connected to the fabric. Note that only the storage system that presently owns a particular disk can write to a given disk.
One problem of storage systems configured to support multiple disk ownership models is the need to determine the appropriate disk ownership model to be used when initializing the system. A storage subsystem of the storage system typically requires the knowledge of which disks the system owns so that high-level modules of the storage operating system may be configured correctly. For example, a RAID module of a storage operating system requires knowledge of the disks owned by the storage system, so that it is able to assimilate the disks into appropriate RAID groups. If a storage system improperly asserts ownership of a disk by, for example, utilizing an incorrect disk ownership model, data loss may result as the disks are incorporated into RAID groups incorrectly.
One solution for determining the appropriate disk ownership model used by a storage system is to store the appropriate ownership model in a firmware variable associated with the storage system. However, a noted disadvantage of such a solution is that it generates a single point of failure if the firmware variable is accidentally deleted, thereby causing the storage system to possibly utilize an improper disk ownership model. Additionally, in the event that the storage system is migrated (moved) from one storage system environment to another environment that utilizes a different disk ownership model, the storage system will initialize utilizing an improper disk ownership model.